Error loading MIDAS.DLL

Otázka od: Malecek Ondrej

22. 11. 2004 7:52

Dobry den,
mam aplikaci v D6, ktera pouziva ClientDataset. Na nekterych PC (ruzne
konfigurace s ruznymi OS, WinME, WinXP) mi to pri spusteni aplikace hlasi
viz. Subject. Nesetkal jste se s tim nekdo, resp. v cem by mohl byt problem
? Pro upresneni: kontroloval jsem, ze na stroji, kde to zlobi neni jina
verze MIDAS.DLL (napr. ve WIN\SYSTEM) => zlobi verze MIDAS.DLL, ktera mi na
jinych strojich bezi OK.

Diky

Ondrej

Odpovedá: Marek Dostal

22. 11. 2004 8:40

>Error loading MIDAS.DLL

Cesta ke knihovne midas.dll je ulozena v registrech, takze je tam asi
nespravna cesta. Pomuze spustit

    regsvr32.exe /u- midas.dll


   Marek Dostal
   D7Prof, WinXP Home, FireBird 1.0.2


Odpovedá: Libor Junek, Medisoft International

22. 11. 2004 9:12

Jedno z reseni je vzdy pri startu aplikace odregistrovat a zaregistrovat tu
DLL. Nebo by to slo jeste omezit ze pri spusteni vytvorit pokusne
TClientDataSet a pokud to padne tak provest odregistraci/registraci.

   RegisterLibrary(False, ExtractFilePath(ParamStr(0)) + 'midas.dll');
   RegisterLibrary(True, ExtractFilePath(ParamStr(0)) + 'midas.dll');

function RegisterLibrary(RegisterDll: Boolean; const FileName: String):
Boolean;
type
  TRegProc = function : HResult; stdcall;
const
  SLoadFail = 'Chyba pri nacitani knihovny "%s"';
  SCantFindProc = '%s procedura nebyla nalezena v knihovne "%s"';
  SRegFail = 'Chyba pri spousteni procedury %s v knihovne "%s"';

  RegProcName = 'DllRegisterServer';
  UnRegProcName = 'DllUnregisterServer';
var
  hLib: THandle;
  RegProc: TRegProc;
  ProcName: String;
begin
  Result := False;
  if RegisterDll then
    ProcName := RegProcName
  else
    ProcName := UnRegProcName;
  hLib := LoadLibrary(PChar(FileName));
  if hLib = 0 then
   raise Exception.CreateFmt(SLoadFail, [FileName]);
  try
    @RegProc := GetProcAddress(hLib, PChar(ProcName));
    if @RegProc = nil then
      raise Exception.CreateFmt(SCantFindProc, [ProcName, FileName]);
    if RegProc <> 0 then
      raise Exception.CreateFmt(SRegFail, [ProcName, FileName]);
    Result := True;
  finally
    FreeLibrary(hLib);
  end;
end;

----- Original Message -----
From: "Malecek Ondrej" <ondrej.malecek@radom-cz.cz>
Sent: Monday, November 22, 2004 7:52 AM


> mam aplikaci v D6, ktera pouziva ClientDataset. Na nekterych PC (ruzne
> konfigurace s ruznymi OS, WinME, WinXP) mi to pri spusteni aplikace hlasi
> viz. Subject. Nesetkal jste se s tim nekdo, resp. v cem by mohl byt
> problem
> ? Pro upresneni: kontroloval jsem, ze na stroji, kde to zlobi neni jina
> verze MIDAS.DLL (napr. ve WIN\SYSTEM) => zlobi verze MIDAS.DLL, ktera mi
> na
> jinych strojich bezi OK.
> Ondrej


Odpovedá: Ondrej Kelle

22. 11. 2004 10:37

> mam aplikaci v D6, ktera pouziva ClientDataset. Na nekterych
> PC (ruzne konfigurace s ruznymi OS, WinME, WinXP) mi to pri
> spusteni aplikace hlasi viz. Subject. Nesetkal jste se s tim
> nekdo, resp. v cem by mohl byt problem?
> Pro upresneni: kontroloval jsem, ze na stroji, kde to zlobi
> neni jina verze MIDAS.DLL (napr. ve WIN\SYSTEM) => zlobi
> verze MIDAS.DLL, ktera mi na jinych strojich bezi OK.

Nie je lepsie dat si MidasLib do uses? Tym padom linkujes kod ohladne client
dataset, provider atd. priamo do svojej aplikacie a vobec nepotrebujes
pouzivat midas.dll. To plati rovnako pre server ako pre klientov.

HTH
TOndrej


Odpovedá: Malecek Ondrej

22. 11. 2004 12:24

Bylo to presne ono, to jsem tedy netusil. Asi to tam zustalo po nejake
odinstalaci.

Ondrej

> -----Puvodni zprava-----
> Od: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]za
> u?ivatele Marek Dostal
> Odeslano: 22. listopadu 2004 8:41
> Komu: delphi-l@clexpert.cz
> P?edmit: Re: Error loading MIDAS.DLL
>
>
> >Error loading MIDAS.DLL
>
> Cesta ke knihovne midas.dll je ulozena v registrech, takze je tam asi
> nespravna cesta. Pomuze spustit
>
> regsvr32.exe /u- midas.dll
>
>
> Marek Dostal
> D7Prof, WinXP Home, FireBird 1.0.2
>
>